package com.minglead.crawler.util;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class MergeUtil {
    public final static String datePattern = "yyyy-MM-dd";

    /**
     * 删除单个文件
     *
     * @param filePath 文件路径
     */
    public static void deleteFile(String filePath) {
        File file = new File(filePath);
        // 判断文件是否存在且是一个文件，然后删除
        if (file.exists() && file.isFile()) {
            if (file.delete()) {
                System.out.println("文件删除成功: " + filePath);
            } else {
                System.out.println("文件删除失败: " + filePath);
            }
        } else {
            System.out.println("文件不存在或不是文件: " + filePath);
        }
    }

    /**
     * 时间加减天数
     *
     * @param startDate 要处理的时间，Null则为当前时间
     * @param days      加减的天数
     * @return Date
     */
    public static Date dateAddDays(Date startDate, int days) {
        if (startDate == null) {
            startDate = new Date();
        }
        Calendar c = Calendar.getInstance();
        c.setTime(startDate);
        c.set(Calendar.DATE, c.get(Calendar.DATE) + days);
        return c.getTime();
    }

    /**
     * 返回当前时间
     * @return
     */
    public static Date getCurrentDateTime() {
        return MergeUtil.getNowDate();
    }

    public static Date getCurrentDate() {
        Date currentDate = MergeUtil.getNowDate();
        String currentDateStr = MergeUtil.convertDateToString(datePattern,currentDate);
        return MergeUtil.convertStringToDate(currentDateStr);
    }

    /**
     * 获取当前时间
     */
    public static Date getNowDate() {
        Date date = new Date();
        return date;
    }

    /**
     * 把时间格式转换成字符串格式
     * @param pattern 需要转成的显示格式 yyyy-MM-dd HH:mm:ss,yyyy-MM-dd ...
     * @param aDate 待转的时间
     * @return
     * String
     */
    public static final String convertDateToString(String pattern, Date aDate) {
        SimpleDateFormat df = null;
        String returnValue = "";
        if (aDate != null) {
            df = new SimpleDateFormat(pattern);
            returnValue = df.format(aDate);
        }
        return (returnValue);
    }

    /**
     * 把字符串格式转化成时间格式
     * 返回格式：yyyy-MM-dd
     */
    public static final Date convertStringToDate(String strDate){
        Date date = null;
        try {
            SimpleDateFormat df = null;
            df = new SimpleDateFormat(datePattern);
            date = df.parse(strDate);
        } catch (Exception pe) {
            pe.printStackTrace();
        }

        return (date);
    }
}
